#ifndef LI_PIPE_H
#define LI_PIPE_H

#ifdef __cplusplus
extern "C"
{
#endif


    Pipe li_new_pipe(const char *id, void *arg, PipeLine out);
    Pipe li_new_input_device(const char *id);
    Pipe li_new_output_device(const char *id, void *arg, PipeLine stream);

    Pipe pipe_find(const char *id);
    void pipe_remove(Pipe pipe);
    void pipe_remove_tag(const char *id);

    int32_t pipe_connect_to(Pipe source, Pipe entry);
    int32_t pipe_disconnect(Pipe source);
    int pipe_block(Pipe pipe);

    void *pipe_release_data(Pipe pipe, char *data, int32_t len);

#ifdef __cplusplus
}
#endif

#endif
